home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / Rotato / Source / PrefResource.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-25  |  1.3 KB  |  56 lines  |  [TEXT/CWIE]

  1.  
  2.  
  3. #include <DeskBus.h>
  4.  
  5. #include "PrefResource.h"
  6.  
  7.  
  8. #define kPrefsResourceType        'Smfr'
  9. #define kPrefsResourceID            128
  10.  
  11. /*----------------------------------------------------------------------------
  12.     GetPrefsData 
  13.     
  14. ----------------------------------------------------------------------------*/
  15.  
  16. OSErr GetPrefsData(TPrefsData *outPrefsData)
  17. {
  18.     TPrefsDataHandle    prefsHandle;
  19.     
  20.     prefsHandle = (TPrefsDataHandle)GetResource(kPrefsResourceType, kPrefsResourceID);
  21.     if (!prefsHandle) return resNotFound;
  22.     
  23.     *outPrefsData = **prefsHandle;
  24.     ReleaseResource((Handle)prefsHandle);
  25.     return noErr;
  26. }
  27.  
  28.  
  29. /*----------------------------------------------------------------------------
  30.     SetPrefsData 
  31.     
  32. ----------------------------------------------------------------------------*/
  33.  
  34. OSErr SetPrefsData(const TPrefsData *prefsData)
  35. {
  36.     TPrefsDataHandle    prefsHandle;
  37.     
  38.     prefsHandle = (TPrefsDataHandle)GetResource(kPrefsResourceType, kPrefsResourceID);
  39.     if (!prefsHandle)
  40.     {
  41.         Str255    resName;
  42.         resName[0] = 0;
  43.         
  44.         prefsHandle = (TPrefsDataHandle)NewHandleClear(sizeof(TPrefsData));
  45.         if (!prefsHandle) return memFullErr;
  46.         
  47.         AddResource((Handle)prefsHandle, kPrefsResourceType, kPrefsResourceID, resName);
  48.     }
  49.     
  50.     **prefsHandle = *prefsData;
  51.     ChangedResource((Handle)prefsHandle);
  52.     WriteResource((Handle)prefsHandle);
  53.     return noErr;
  54. }
  55.  
  56.